package com.dhecp.project.system.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.dhecp.common.core.domain.AjaxResult;
import com.dhecp.project.system.domain.SysUserAndRoleJurisdiction;
import com.dhecp.project.system.domain.SysUserAndRoleJurisdictionForShiro;

/**
 * 
 * @author DH-Xxj
 * @version 2019年10月28日
 */
public interface SysUserAndRoleJurisdictionService {


    /**
     * 查询指定用户功能权限shiro标识  功能权限控制
	 * @param userId 必要参数：当前登录用户编号
	 * @param mandator 必要参数：委托（被代理）人
	 * @return HashSet-String
     * @author DH-Xxj
     */
	Set<String> queryJurisdictionForShiroToString(Map<String,Object> params);
    /**
     * 查询指定用户功能权限shiro标识  功能权限控制
	 * @param userId 必要参数：当前登录用户编号
	 * @param mandator 必要参数：委托（被代理）人
	 * @return List-SysUserAndRoleJurisdictionForShiro
     * @author DH-Xxj
     */
	List<SysUserAndRoleJurisdictionForShiro> queryJurisdictionForShiro(Map<String,Object> params);

	/**
	 * 查询指定角色权限列表
	 * @param pid 必要参数：角色 guid号
	 * @param menuGuid 或 menuPguid 所属菜单或所属菜单上级 guid 二选一
	 * @return List-SysUserAndRoleJurisdiction
	 * @author DH-Xxj
	 */
	List<SysUserAndRoleJurisdiction> queryUserAndRoleJurisdictionListForRole(Map<String, Object> params);

	/**
	 * 查询指定用户权限列表
	 * @param pid 必要参数：用户编号 userId
	 * @param searchModule 或 menuGuid 或 menuPguid 具体功能或所属菜单或所属菜单上级 guid 三选一
	 * @return List-SysUserAndRoleJurisdiction
	 * @author DH-Xxj
	 */
	List<SysUserAndRoleJurisdiction> queryUserAndRoleJurisdictionListForUser(Map<String, Object> params);

	/**
	 * 设置用户及角色权限
	 * @param infoItems 必要参数：用户及角色权限表对应实体类的json格式字符串
	 * @param upType 必要参数：权限修改类型（formodule：功能权限，fordata：数据权限）
	 * @return AjaxResult
	 * @author DH-Xxj
	 */
	AjaxResult updateUserAndRoleJurisdiction(Map<String, Object> params);

}